Information processing apparatus, electrical power control method, and computer product

ABSTRACT

An information processing apparatus includes a processor programmed to detect scheduled starting times of two events to be executed at a current time or thereafter; calculate a difference of the scheduled starting times of the two events, when the scheduled starting times of the two events have been detected; and correct, based on the calculated difference and to an extent that a restriction indicated in restriction information of an event to be corrected is observed, the scheduled starting time of at least any one of the two events, as the event to be corrected, such that an interval between the scheduled starting times of the two events is shortened.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of InternationalApplication PCT/JP2010/072403, filed on Dec. 13, 2010 and designatingthe U.S., the entire contents of which are incorporated herein byreference.

FIELD

The embodiments discussed herein are related to an informationprocessing apparatus, an electrical power control method, and a computerproduct.

BACKGROUND

Among mobile terminal apparatuses such as mobile telephones and personaldigital assistants (PDAs), those configured to include a multi-taskoperating system (OS) are increasing. Among mobile terminal apparatusesequipped with a multi-task OS is an apparatus that has improvedfunctions as well as improved expressional capability and operability ofthe user interface, and to which rich client software can be added. Themobile terminal apparatus also has various functions other than makingand receiving calls, and provides the various functions to the user byexecuting applications (hereinafter, respectively referred to as “app”)such as, for example, an e-mail app; a web browser; a news app; aviewing app for blogs, etc.; a map app; a traffic information app; and agame app.

The mobile terminal apparatus providing the various functions asdescribed above consumes more electrical power as the number offunctions provided increases. For example, a smartphone is an example ofa mobile terminal apparatus equipped with a multi-task OS, and alsoconsumes a large amount of electrical power. The functions provided by asmartphone include functions that cause the hardware thereof to operateand the software thereof to be executed consequent to regularly executedprocesses such as the reception of e-mail and updating of a resourcedescription framework site summary (RSS) even when the user does notoperate the smartphone. These functions cause the power consumption ofthe mobile terminal apparatus to be further increased.

For example, a technique is disclosed as a technique of reducing theincreased power consumption. According to the technique, informationsuch as the amount of remaining battery power is mutually declaredbetween a wireless terminal apparatus and a server; the transmissionspeed, the transmission scheme, and the power source control scheme areset according to the content of the declaration; and thereby, thereduction of the amount of remaining battery power is minimized (see,e.g., Japanese Laid-Open Patent Publication No. H9-205396).

A technique is disclosed as another technique of reducing the powerconsumption. According to the technique, the arrival time of a packet isestimated; an active state where the electrical power is unlimitedlyused is switched to a low electrical power state or the low electricalpower state is switched to the active state, based on the estimatedarrival time (see, e.g., Japanese Laid-Open Patent Publication No.2002-185475).

A technique is disclosed as yet another technique of reducing the powerconsumption. According to the technique, in a wireless communicationsystem, the transmission cycle of a beacon signal that is reported by abase station is set based on a setting request issued by a terminalstation (see, e.g., Japanese Laid-Open Patent Publication No.2005-130436 (Paragraphs and)). According to the technique disclosed inJapanese Laid-Open Patent Publication No. 2005-130436, the terminalstation can turn off the power supply to the communication circuit untilthe timing at which the beacon signal is received by causing theinterval for checking an e-mail app executed in the terminal station tobe same as the transmission cycle of the beacon of the base station andthereby, the power consumption of the terminal station can be reduced.

A technique is disclosed as a technique of reducing the amount ofinformation in regularly executed processes. According to the technique,the polling time of a packet from a parent station is calculated by achild station based on a database (see, e.g., Japanese Laid-Open PatentPublication No. 2005-33444).

However, among the conventional techniques, according to the techniquedisclosed in Japanese Laid-Open Patent Publication No. 2002-185475, theamount of data transmitted and received by the mobile terminal apparatusis estimated based on the result of observation and therefore, a problemarises in that the power consumption is increased when a large amount ofdata is generated. According to the techniques disclosed in JapaneseLaid-Open Patent Publication Nos. H9-205396, 2002-185475, and2005-33444, the apps providing the various functions do not necessarilyoperate within the extent that is estimated by the mobile terminalapparatus and each of the apps operate independently of the other appsand therefore, a problem arises in that power consumption increases.

According to the technique disclosed in Japanese Laid-Open PatentPublication No. 2005-130436, denoting the transmission process executedby the base station as “app 1” and the check process of the e-mail appexecuted by the terminal station as “app 2”, the technique disclosed inJapanese Laid-Open Patent Publication No. 2005-130436 is applicable to amobile terminal apparatus and the app 1 can be run associated with theoperation of the app 2. However, a problem arises in that the operationrestrictions of the apps may be violated by changing the time at whicheach of the apps runs.

SUMMARY

According to an aspect of an embodiment, an information processingapparatus includes a processor programmed to detect scheduled startingtimes of two events to be executed at a current time or thereafter;calculate a difference of the scheduled starting times of the twoevents, when the scheduled starting times of the two events have beendetected; and correct, based on the calculated difference and to anextent that a restriction indicated in restriction information of anevent to be corrected is observed, the scheduled starting time of atleast any one of the two events, as the event to be corrected, such thatan interval between the scheduled starting times of the two events isshortened.

The object and advantages of the invention will be realized and attainedby means of the elements and combinations particularly pointed out inthe claims.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory and arenot restrictive of the invention.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of hardware of a mobile terminal apparatus 100according to an embodiment;

FIG. 2 is a block diagram of software of the mobile terminal apparatus100;

FIG. 3 is an explanatory diagram of a case where apps 210 are caused torun at polling intervals corrected by an event management API 222;

FIGS. 4A and 4B are explanatory diagrams of an example of the processingcontents of the event management API 222 and an app management API 221;

FIG. 5 is a block diagram of functions of the mobile terminal apparatus100;

FIG. 6 is an explanatory diagram of an example of the correction of apolling interval;

FIGS. 7A and 7B are explanatory diagrams of the power consumption of themobile terminal apparatus 100 when a polling interval T is notcorrected;

FIGS. 8A and 8B are explanatory diagrams of the power consumption of themobile terminal apparatus 100 when the polling terminal T is corrected;

FIG. 9 is a flowchart (Part I) of a polling interval correction process;and

FIG. 10 is a flowchart (Part II) of the polling interval correctionprocess.

DESCRIPTION OF EMBODIMENTS

Embodiments of an information processing apparatus, an electrical powercontrol method, and an electrical power control program will bedescribed in detail with reference to the accompanying drawings. In thepresent embodiments, a mobile terminal apparatus will be described asone example of information processing.

FIG. 1 is a block diagram of hardware of the mobile terminal apparatus100 according to the embodiment. The mobile terminal apparatus 100includes a central processing apparatus (CPU) 101 and a graphicsprocessing unit (GPU) 102 and further includes a liquid crystal display(LCD) I/F 103, a touch panel I/F 104, a front camera I/F 105, memory106, a rear camera I/F 107, a wireless I/F 108, a universal serial bus(USB) I/F 109, and a wireless fidelity (Wi-Fi) I/F 110.

FIG. 1 does not depict apparatuses that are connected through the I/Fsfrom the LCD I/F 103 to the front camera I/F 105 and the rear camera I/F107 to the Wi-Fi I/F 110. The components from the CPU 102 to the Wi-FiI/F 110 are connected to each other by a bus 111, and can each mutuallytransmit and receive data under the management by the CPU 101.

The CPU 101 supervises the control of operations of the entire mobileterminal apparatus 100. The CPU 101 may be a multi-core processor thathas plural cores. The GPU 102 executes calculation processes that arespecific to graphic processing. The LCD I/F 103 is an I/F with an LCDdisplay. The LCD display displays data such as a document, an image, andfunction information in addition to a cursor, an icon, and a tool box.The touch panel I/F 104 is an I/F with a touch panel. For example, whenthe user presses down on the touch panel, the touch panel I/F 104interprets the pressing down as occurrence of an event and notifies theCPU 101 accordingly.

Each of the front and the rear camera I/Fs 105 and 107 is an I/F with acamera. The memory 106 are a main storage device and a sub storagedevice. For example, the memory 106 are storage devices such as aread-only memory (ROM), a random access memory (RAM), and a flash ROM.The ROM stores programs such as a boot program. The RAM is used as awork area for the CPU 101. The flash ROM stores system software such asan OS, application software, and images, moving images, etc. captured bythe front and the rear cameras.

The wireless I/F 108 is an I/F with wireless devices such as an antenna.The USB I/F 109 is an I/F with peripherals that support the USBstandard. The peripherals can be, for example, storage media such as aflash memory such as “3D card (a registered trademark)”. The Wi-Fi I/F110 is an I/F with a wireless LAN device that supports “IEEE802.11a/IEEE 802.11b” that are the standard specifications for thewireless LAN.

FIG. 2 is a block diagram of software of the mobile terminal apparatus100. The mobile terminal apparatus 100 includes apps 210, an applicationprogram interface (API) 220, libraries 230, and a kernel 240. Thesoftware from the API 220 to the kernel 240 is software provided by anOS 201.

The apps 210 include a browser app 211, a telephone app 212, a news app213, an e-mail app 214, etc. The browser app 211 is an app that executescommunication through the Wi-Fi I/F 110, etc. and that is used to viewmainly web pages acquired based on a hypertext transfer protocol (HTTP).The telephone app 212 is an app that is connected to a base station bythe wireless I/F 108 and that is used to make and receive calls withrespect to other mobile terminal apparatuses, a physical-line telephone,etc. The news app 213 is an app that executes communication through theWi-Fi I/F 110, etc. and that is used to view on the Internet, newsacquired based on a network news transfer protocol (NNTP).

The e-mail app 214 is an app that executes communication through theWi-Fi I/F 110, etc. and that is used to transmit and receive e-mailbased on a simple mail transfer protocol (SMTP), a post office protocol(POP), etc. It is assumed that the apps 210 according to the embodimentare each executed as one process. For example, the browser app 211 isone process and the telephone app 212 is another one process.

The API 220 is a function of the OS 211 and is an interface for each ofthe apps 210 to access the libraries 230 provided by the OS 201. The API220 includes an app management API 221, an event management API 222, atimer API 223, etc.

The app management API 221 executes a starting process, an endingprocess, and a switching process for each of the apps 210 that isdisplayed on the LCD. The event management API 222 is a feature of theembodiment and corrects the polling intervals of the apps 210 based onan event list 202, in which events to be executed at the current time orthereafter are registered, and information concerning the electricalpower of the mobile terminal apparatus 100. An example of the contentsof the event list 202 will be described with reference to FIGS. 4A and4B.

For example, the event management API 222 corrects intervals such as there-reading interval designated in an HTML, etc. on the webpage in thebrowser app 211; the mail query interval to the POP server of the e-mailapp 214; etc. The event management API 222 acquires the event list 202and the information concerning the electrical power from the libraries230. The timer API 223 supplies information concerning the time pointwhen the timer API 223 is invoked by the apps 210, the event managementAPI 222, etc.

The libraries 230 are a function of the OS 201 and indicate a group ofservices that are available for the apps 210. The libraries 230 includea timing control library 231, an electrical power control library 232,and a Java (registered trademark) virtual machine (VM) 233.

The timing control library 231 has a function of acquiring in response arequest from the timer API 223, time information that is, for example,the current time. The electrical power control library 232 acquireselectrical power information in response to a request from the eventmanagement API 222. If an object among the execution objects of the apps210 is not described in a machine language of the mobile terminalapparatus 100 (a negative code) and is described using an intermediatecode of Java, the Java VM 233 is a library that enables the execution ofthe object by the mobile terminal apparatus 100. If all the apps amongthe apps 210 are described using a negative code, the Java VM 233 may beomitted.

The kernel 240 is software that is the core of the OS 201 and includes adevice control unit 241, a process control unit 242, etc. The devicecontrol unit 241 has a function of controlling devices 203 connected tothe mobile terminal apparatus 100. The devices 203 are, for example, anLCD connected to the LCD I/F 103, cameras connected to the front and therear camera I/Fs 105 and 107, and an antenna connected to the wirelessI/F 108 and to the Wi-Fi I/F 110. The devices 203 further includestorage media, etc., such as the flash memory, etc. connected to the USBI/F 109.

For example, the device control unit 241 accesses the LCD I/F 103 andthereby, controls the LCD. The process control unit 242 has a functionof controlling the processes executed by the mobile terminal apparatus100. For example, the process control unit 242 assigns the processesexecuted by the apps 210 to the CPU 101, based on the priority levels,time sharing, etc.

FIG. 3 is an explanatory diagram of a case where the apps 210 are causedto run at polling intervals corrected by the event management API 222,and depicts the apps 210 and the API 220 extracted from FIG. 2.

The processes of the news app 213 and the e-mail app 214 are switched bythe process control unit 242. When the new app 213 and the e-mail app214 notify the event management API 222 of an execution request for anevent, the event management API 222 corrects the polling interval thatis to elapse until the next event. The time information is provided bythe timer API 223 and after the corrected polling interval elapses, theevent management API 222 notifies the apps 210 that issued the executionrequest that the scheduled starting time of the event has arrived, andthe apps 210 that issued the execution request sources execute theevent.

FIGS. 4A and 4B are explanatory diagrams of an example of the processingcontents of the event management API 222 and the app management API 221.The event management API 222 manages the event list 202; and the appmanagement API 221 retains information that indicates the relationsbetween the events and the apps 210. FIG. 4A depicts the retention stateof the event list 202 by the event management API 222 at the currenttime of 12:40:40 on Apr. 3, 2010. FIG. 4B depicts the relation betweenthe event and the apps 210 by the app management API 221.

In FIG. 4A, the event list 202 is managed by the event management API222 and is a list of events that occur triggered by the time designatedby one of the apps 210. The types of events include two types includingevents that occur only once and events that recur regularly. In FIG. 4A,events 403 to 406 are registered in the event list 202.

For each event in the event list 202, the event list 202 has threefields, respectively for the event ID, the type of the event, and thescheduled starting time of the event. The event ID field stores an IDthat is correlated with one of the apps 210. The event type field storesinformation that enables the determination of whether the event occursonly once or recurs regularly; and when the event to be executed is aregularly recurring event, further stores time information indicating atwhat intervals the event is to be executed. The scheduled starting timefield stores the time at which the event is to be executed next.

In FIG. 4B, the app management API 221 stores pointers of the apps 210.Each of the pointers is correlated with an event ID that is registeredin the event list 202. For example, the browser app 211 is correlatedwith an event ID “1”. The telephone app 212 is correlated with no event.The news app 213 is correlated with an event ID “3”. The e-mail app 214is correlated with event IDs “2” and “4”.

As depicted in FIGS. 4A and 4B, for example, the browser app 211executes at 12:40:50 on Apr. 3, 2010, the event 403 whose event ID is“1”. When the event 403 is an event that executes the re-reading of agiven webpage, the browser app 211 re-reads the webpage at the scheduledstarting time.

Similarly, at 9:11:00 on Apr. 5, 2010, the news app 213 executes anevent 405 whose event ID is “3”. When the event 405 is an event toacquire news on the Internet posted after the previous acquisition, thenews app 213 acquires the news at the designated scheduled startingtime. Because the event 405 is a repeatedly recurring event, such anevent is added to the event list 202 as a new event that is scheduled tobe executed at 9:11:00 on Apr. 8, 2010, which is three days after theevent 405 comes to an end.

Similarly, at 12:43:30 on Apr. 3, 2010, the e-mail app 214 executes theevent 404 whose event ID is “2” and also at 13:00:00 on Apr. 3, 2010,executes the event 406 whose event ID is “4”. In this case, it isassumed that the e-mail app 214 is software supporting multipleaccounts. When the events 404 and 406 are events to execute a check onnewly arriving e-mail in a corresponding e-mail account, the e-mail app214 executes the check on newly arriving e-mail at the designatedscheduled starting time. In this manner, one app may invoke pluralevents. The plural events may each have the same processing content ordiffering processing content.

The events 404 and 406 are both repeatedly recurring events andtherefore, a new event is registered into the event list 202 after theevent comes to an end. For example, after the event 404 comes to an end,a new event is registered into the event list 202. The new event isscheduled to be executed at 12:46:55 on Apr. 3, 2010, which is 205seconds after the starting time of the event 404. After the event 406comes to an end, a new event is registered into the event list 202. Thenew event is scheduled to be executed at 14:00:00 on Apr. 3, 2010, whichis one hour after the starting time of the event 406.

FIG. 5 is a block diagram of functions of the mobile terminal apparatus100. The mobile terminal apparatus 100 includes a detecting unit 501, acalculating unit 502, and a correcting unit 503. The functions from thedetecting unit 501 to the correcting unit 503 forming a control unit areimplemented by executing on the CPU 101, programs stored in a storagedevice. The storage device is, for example, the memory 106, a storingmedium that is connected to the USB I/F 109, etc.

The detecting unit 501 has a function of detecting the scheduledstarting times of two events that are executed at the current time orthereafter. For example, a case is assumed where the current time is12:41:00 on Apr. 3, 2010 and the event 403 has been executed and deletedfrom the event list 202. In this case, the detecting unit 501 detectsthe scheduled starting times of an event to be executed at the currenttime or thereafter and that is invoked by the browser app 211 and theevent 404 that is registered in the event list 202. The detecting unit501 may detect the scheduled starting times of two events from among theevents registered in the event list 202.

When two preceding events that have been executed and have processingcontents that are same as the processing contents of the two events forwhich detection is performed and, as a result, the processing timeperiods of the two preceding events do not overlap with each other, thedetecting unit 501 may detect the scheduled starting times of the twoevents to be executed at the current time or thereafter. For example, itis assumed that the event invoked by the browser app 211 is an event tobe repeatedly executed, and a case is further assumed where there is nooverlap of the processing time periods a preceding event that has beenexecuted and has processing content that is same as that of the eventinvoked by the browser app 211 and of a preceding event executed 205seconds before the execution of the event 404. In this case, thedetecting unit 501 detects the scheduled starting times of the eventinvoked by the browser app 211 and the event 404. A state in whichprocessing time periods overlap each other indicates a state in whichthe two events are both currently executed at one point in time.

As a result of the correcting unit 503 correcting the scheduled startingtimes of the two preceding events, if the processing time periods of thetwo preceding events do not overlap each other, the detecting unit 501may detect the scheduled starting times of the two events to be executedat the current time or thereafter. As a result of the correctionexecuted by the correcting unit 503, the processing time periods may notoverlap each other due to restriction information of the event to becorrected. In this case, the detecting unit 501 detects the scheduledstarting times of the event invoked by the browser app 211 and the event404. The description of the restriction information and of a specificexample thereof will be made in the description of the correcting unit503.

The detecting unit 501 may detect, as the two events, an event thattemporally is to be executed next and another event other than the eventthat temporally is to be executed next, among the group of events to beexecuted at the current time or thereafter. For example, when thecurrent time is 12:40:50 on Apr. 3, 2010, the detecting unit 501 maydetect the event 404 as the event that temporally is to be executednext, and an event invoked by the browser app 211 as the other event.Further, the detecting unit 501 may detect the event 405 or 406 as theother event. Detected data is stored to the storage area such as aregister or a cache memory of the CPU 101, or the memory 106.

The calculating unit 502 has a function of calculating the difference ofthe scheduled starting times of the two events when the detecting unit501 detects the scheduled starting times of the two events. For example,the calculating unit 502 calculates the difference of the respectivescheduled starting times of the event invoked by the browser app 211 andof the event 404. Assuming that the scheduled starting time of the eventinvoked by the browser app 211 is 12:44:00 on Apr. 3, 2010, thecalculating unit 502 calculates as the difference (12:43:30 on Apr. 3,2010)−(12:44:00 on Apr. 3, 2010)=−30 [s]. The value of the calculateddifference is stored to a storage area such as the register or the cachememory of the CPU 101, or the memory 106.

The correcting unit 503 has a function of correcting the scheduledstarting time of at least any one of the two events, based on thedifference calculated by the calculating unit 502 and such that theinterval between the scheduled starting times of the two events becomesshorter. The correcting unit 503 corrects the scheduled starting time ofthe event to be corrected to the extent that a restriction indicated inthe restriction information of the event to be corrected is observed.

The restriction information is a value based on the specification, etc.of any one of the apps 210 that executes the event to be corrected. Forexample, as a specification of the polling interval of the browser app211, a minimal value of the re-reading interval may be set for a givenwebpage to prevent an increase in the load on the server due to ashortening of the polling interval. The maximal number of accessesenabled in one hour may be set for the given webpage as anotherspecification.

When restriction information is present, the correcting unit 503corrects the scheduled starting time of the event to be corrected to theextent that a restriction indicated in the restriction information isobserved. For example, when the calculated difference is −30 [s], thecorrecting unit 503 adds (−30 [s]) to the scheduled starting time of theevent that is invoked by the browser app 211 and is the event to becorrected, whereby the scheduled starting time thereof becomes 12:43:30on Apr. 3, 2010. In this case, the scheduled starting time of the eventinvoked by the browser app 211 and that of the event 404 are same.Thereby, the execution time period of the device 203 can be consolidatedand power consumption can be reduced.

When the scheduled starting time of the event to be corrected is thetime 12:43:30 on the Apr. 3, 2010 and a restriction indicated in therestriction information cannot be observed, the correcting unit 503corrects the scheduled starting time of the event to an extent that therestriction indicated in the restriction information is observed. Forexample, if the restriction information indicates that the event to becorrected can be executed only at 12:43:40 on Apr. 3, 2010 orthereafter, the correcting unit 503 corrects the scheduled starting timeof the event to the time that is 23:43:40 on Apr. 3, 2010. A detailedexample of correction will be described later with reference to FIG. 6.

The correcting unit 503 may determine one of the two events detectedafter the other by the detecting unit 501 as the event to be correctedand may correct the scheduled starting time of the event. For example,when the event invoked by the browser app 211 and the event 404 aredetected by the detecting unit 501, the correcting unit 503 determinesthe event that is invoked by the browser app 211 and that is detectedafter the event 404, as the event to be corrected.

The correcting unit 503 may correct the scheduled starting time of theevent to be corrected based on the power consumption of either of thetwo events, or may correct the scheduled starting time of the event tobe corrected based on the amount of the remaining electrical power ofthe mobile terminal apparatus 100. The power consumption of an event maybe the power consumption of the event to be corrected or may be thepower consumption of the event not to be corrected. The correcting unit503 corrects the polling time based on the calculated difference, thepower consumption, the amount of the remaining electrical power, etc.such that the restriction information is easily observed. The app maydetermine whether the corrected polling time observes the restrictioninformation.

FIG. 6 is an explanatory diagram of an example of the correction of thepolling interval. In the mobile terminal apparatus 100, the app 210 doesnot independently set the polling interval of the event; and the OS 201corrects the polling interval to the optimal polling interval based onthe value provided from the app 210. Further, the app 210 may correctthe scheduled starting time of the event based on the calculated pollinginterval. Before describing an example of the correction of the pollinginterval with reference to FIG. 6, an example of a calculation equationfor the correction will be described. The event management API 222corrects the polling interval according to Eq. (1) below.NextPollingTime_(—) eN=CurrentTime+T _(—) Apl1  (1)

Where, with respect to an app 1 included among the apps 210,“NextPollingTime_eN” represents the scheduled starting time obtained bythe correction is executed for the event to be corrected; “_eN”indicates that the event is the N-th event to be executed among theevents in the event list 202; “N” is a natural number; “CurrentTime”represents the current time; and “T_Apl1” represents the calculatedpolling interval obtained by the correction. The event management API222 calculates the polling interval T_Apl1 obtained by the correctionusing a function f1 below.T _(—) Apl1=f1(PowerApiLevel_(—) Apl1,Polling_(—)Apl1)f1(PowerApiLevel_(—) Apl1,Polling_(—) Apl1)=(Polling_(—)Apl1−CurrentTime)+(NextPollingTime_(—) e1−Polling_(—)Apl1)*constant/(PowerApiLevel_(—) Apl1*BatteryLife)

Where, “Polling_Apl1” represents the respective scheduled starting timesthat are of the event and used before the correction and of the app 1;and “_Apl1” indicates that the symbol therewith concerns the app 1.“Polling_Apl1” can be calculated by adding to the current time, thepolling interval that is determined by the app 1 from the specificationthereof, etc.

“NextPollingTime_e1” represents the scheduled starting time of the eventthat temporally is to be executed next among the events in the eventlist 202. In the description below with reference to FIG. 6, an app thatexecutes the event that temporally is to be executed next, will bereferred to as “app 2”. As described, the function f1 is used tocalculate the polling interval that is the numerator portion of thesecond term of the function f1 and that is to be obtained by thecorrection based on the difference between the scheduled starting timeof the event used before the correction of the app 1 and the scheduledstarting time of the event that temporally is to be executed next.

“PowerApiLevel_Apl1” represents an index of the power consumption of theapp 1. An “index of the power consumption” indicates the amount of powerconsumed, where an index of “1” indicates maximal power consumption andas the value of the index increases, the indicated power consumptionbecomes lower. For example, “PowerApiLevel” can be calculated using Eq.(2) below.PowerApiLevel=(the power consumption necessary when the load on the CPU101 is 100%/the power consumption of the app)  (2)

By applying Eq. (2), for example, when the power consumption is 3 [mW]of the CPU 101 having a load of 100%, for an app consuming 3 [mW], theindex of the power consumption is the index=(3/3)=1. For an appconsuming 1 [mW], the index of the power consumption is theindex=(3/1)=3.

The event management API 222 may execute the correction based onthreshold values as the restriction information such as an upper limitvalue and a lower limit value to impose restrictions on the pollinginterval obtained by correction. For example, it is assumed as thespecification of the polling interval of the browser app 211 that aminimal value is set for the re-reading interval of the given webpage.When such a restriction is present, the lower limit value may be set tobe the minimal value of the re-reading interval for a given webpage andwhen the result of the calculation executed using the function f1 isless than the lower limit value, the event management API 222 may set tothe lower limit value, the corrected polling interval T to be acquiredby correction.

“BatteryLife” represents the remaining amount of the electrical power ofthe mobile terminal apparatus 100. For example, BatteryLife takes anumerical value from zero to one. When the numerical value is zero, thisindicates a completely discharged state meaning that no electrical powerremains, and when the numerical value is one, this indicates a fullycharged state. The constant takes a numerical value from zero to one, isrestriction information for the entire mobile terminal apparatus 100,and is a parameter to expand or shrink the second term of the functionf1. When the constant is close to zero, it takes a long time for theprocessing time periods of the apps 1 and 2 to overlap with each other.However, the mobile terminal apparatus 100 prioritizes maintenance ofthe polling interval used before the correction and the observation of arestriction of the restriction information. When the constant is closeto one, it takes less time for the processing time periods of the apps 1and 2 to overlap each other and the mobile terminal apparatus 100prioritizes reduction of the power consumption thereof.

Due to the function f1, taking an average over a long period, thepolling intervals are converged to the polling interval determined bythe app 1 based on the specification, etc. However, each pollinginterval approaches the polling of another event immediately closethereto. When only one event is present, the event management API 222does not execute the function f1 because NextPollingTime_e1 is notpresent. Therefore, the scheduled starting time of the correspondingevent becomes same as Polling_Apl1 and the polling interval becomesequal to the polling interval determined by the app 1 based on thespecification, etc.

The event management API 222 may calculate the polling interval T_Apl1to be acquired by the correction using a function f2 below.T _(—) Apl1=f2(PowerApiLevel_(—) Apl1,Polling_(—) Apl1)=(Polling_(—)Apl1−CurrentTime)+(NextPollingTime_(—) e1−Polling_(—)Apl1)*constant/exp(PowerApiLevel_(—) Apl1*BatteryLife)

Compared to the function f1, the function f2 can reduce the effects ofthe power consumption of the hardware and that of the app 1. When thedenominator of each of the functions f1 and f2 is less than one, theevent management API 222 may perform the calculation by replacing thedenominator with one. The reason for this is that, when the denominatoris less than one, the result of the function f1 may be a value that islarger than the difference between two events that isNextPollingTime_e1−Polling_Apl1. In a case where the denominator is notreplaced with one, for example, when the scheduled starting time of theevent to be corrected is same as or after the scheduled starting time ofthe other event, the scheduled starting time of the event to becorrected may be corrected to the time same as or before the scheduledstarting time of the other event.

An example of the correction of the polling interval will be describedtaking the example depicted in FIG. 6 using the function f1. Thedescription will be made with reference to FIG. 6 taking an example of acase where a new event is invoked by the browser app 211 after theexecution of the event 403 comes to an end. For simplification of thedescription, a time on Apr. 3, 2010 is used when the date and the timeare not designated in the description of the time made with reference toFIGS. 6 to 8.

The browser app 211 starts execution of the event 403 at a time t1 thatis t1=12:40:50 and causes the execution to come to an end at a time t2that is t2=12:41:00. The timing control library 231 starts at the timet2, processing for the event 601 as the event whose polling interval isto be corrected when the event 601, whose execution is to be started ata time t7 that is t7=12:44:00, is invoked by the browser app 211. It isassumed that, at the time t2, the event list 202 includes the events 404to 406. Therefore, the event that temporally is to be executed next isthe event 404 whose execution is to be started at a time t3 that ist3=12:43:30.

“_Apl1” representing the app 1 in the function f1 is replaced with“_Apl211” representing the browser app 211 and “_e1” representing theevent that temporally is to be executed next is replaced with “_E404”representing the event 404 and the function f1 is expressed. Thisprovides Eq. (3) below.f1(PowerApiLevel_(—) Apl211,Polling_(—) Apl211)=(Polling_(—)Apl211−CurrentTime)+(NextPollingTime_(—) E404−Polling_(—)Apl211)*constant/(PowerApiLevel_(—) Apl211*BatteryLife)  (3)

The event management API 222 substitutes PowerApiLevel_Apl211=3,Pollin_Apl211=the time t7, and the constant=1 in Eq. (3), as theinformation concerning the browser app 211, and further substitutesother variables that include CurrentTime=the time t2,NextPollingTime_E404=the time t3, and BatteryLife=0.5. As a result, theevent management API 222 calculates the polling interval T_Apl211 to beused after the correction and acquires Eq. (4) below.

$\begin{matrix}\begin{matrix}{{T\_ Apl211} = {( {{{time}\mspace{14mu} t\; 7} - {{time}\mspace{14mu} t\; 2}} ) + {( {{{time}\mspace{14mu} t\; 3} - {{time}\mspace{14mu} t\; 7}} )*1\text{/}( {3*0.5} )}}} \\{= {180 + {( {- 30} )\text{/}1.5}}} \\{= {160\mspace{14mu}\lbrack s\rbrack}}\end{matrix} & (4)\end{matrix}$

The event management API 222 substitutes Eq. (4) into Eq. (1), acquiresEq. (5) below, and thereby, calculates the scheduled starting timeNextPollingTime_e2 to be used after the correction of the event 601.NextPollingTime_(—) e2=time t2+160=12:43:40(time t4)  (5)

As the result of the calculation, the processing time period of theevent 601 is corrected from that spanning from the time t7 to a timet8=12:44:10, to that spanning from the time t4 to a time t6=12:43:50.Based on the correction and from the processing time period of the event601 and the processing time period of the event 404 spanning from thetime t3 to the time t5=12:43:45, the mobile terminal apparatus 100 canconsolidate the execution time periods of the devices 203 for the timeperiod spanning from the time t4 to the time t5 during which theprocessing time periods overlap with each other. Thereby, the mobileterminal apparatus 100 can reduce the execution time period of thedevices 203 and can reduce power consumption.

The calculation is executed according to the functions f1 and f2 andusing the scheduled starting time of the event that temporally isexecuted next. However, the calculation may be executed using thescheduled starting time of the event whose scheduled starting time isthe closest to the scheduled starting time of the event used before thecorrection. For example, a case is assumed where, at the current timethat is the time t2, the telephone app 212 invokes the event 602 whosescheduled starting time is a time t9 that is t9=13:01:00.

In this case, the event management API 222 may perform the calculationusing the scheduled starting time of the event 406 that is the closestevent whose scheduled starting time is the closest to the scheduledstarting time of the event 602 that is used before the correction, amongthe events registered in the event list 202. When the mobile terminalapparatus 100 selects the event whose scheduled starting time is theclosest, the mobile terminal apparatus 100 calculates the differencebetween the scheduled starting time of the invoked event and thescheduled starting time of each of the events already registered in theevent list 202, and selects as the closest event, the event yielding thesmallest difference. The selection of the closest event causes thedifference between the scheduled starting time of the event used beforethe correction and that of the unexecuted event to be small andtherefore, the processing time periods of the two events tend to overlapwith each other even when a restriction indicated in the restrictioninformation is observed. Consequently, power consumption can be reduced.

Although the newly detected event 601 is determined as the event to becorrected in the example of FIG. 6, the mobile terminal apparatus 100may determine the event 404 that is detected earlier than the event 601as the event to be corrected and may correct the scheduled startingtime. The mobile terminal apparatus 100 may determine each of the events601 and 404 as the event to be corrected.

In this case, for example, the mobile terminal apparatus 100 may set theaverage value of the scheduled starting times of the events 601 and404=(the time t3+the time t7)/2=12:43:45 to be the scheduled startingtime of a virtual event; and may correct the scheduled starting times ofthe events based on the scheduled starting time of the virtual event.Thereby, the interval between the scheduled starting times of the event601 and the virtual event, and the interval between the scheduledstarting times of the event 404 and the virtual event both becomeshorter than those in a case where any one of the events is the event tobe corrected. Therefore, the mobile terminal apparatus 100 can easilyobserve the restriction indicated in the restriction information and,when the processing time periods of the two events overlap each other,the power consumption of the mobile terminal apparatus 100 can bereduced.

In the functions f1 and f2, PowerApiLevel is substituted with the indexPowerApiLevel_Apl1 of the power consumption of the app 1 that executesthe event to be corrected. For “PowerApiLevel”, the index of the powerconsumption of the app 2 may be used.

Among the indices of the power consumption of the apps 1 and 2, thelarger index may be selected and used. The reason the index of powerconsumption whose value is larger, that is, the power consumption thatis lower, is selected is as follows. When the power consumption of theapp is lower, the power consumption of the device 203 that executes theapp is also lower associated with the app. When an execution time periodof high power consumption and an execution time period of low powerconsumption overlap with each other, the largest reduction in powerconsumption is equivalent to the low power consumption. In this manner,the largest amount of reduced power consumption depends on the powerconsumption that is lower and therefore, the mobile terminal apparatus100 can correct the polling interval based on the largest amount ofreduced power consumption by selecting the index of the powerconsumption whose value is larger.

With reference to FIGS. 7A, 7B, 8A, and 8B, the difference in the powerconsumption will be described between cases where the polling interval Tis not corrected by the event management API 222 and where the pollinginterval T is corrected. FIGS. 7A, 7B, 8A, and 8B depict an example ofthe calculation of the respective power consumptions of the browser app211, the e-mail app 214, the OS 201, and the devices 203, as the detailsof the power consumption of the mobile terminal apparatus 100; and anexample of calculation of the power consumption of the mobile terminalapparatus 100 by totaling the calculated power consumption.

In FIGS. 7A, 7B, 8A, and 8B, the following preconditions are assumed. Itis first assumed that in the calculation of the power consumption, thepower consumption of each of the CPU 101 and the devices 203 in a lowelectrical power mode is zero [mW]. The devices 203 depicted in FIGS.7A, 7B, 8A, and 8B are devices accessed by both of the browser app 211and the e-mail app 214. For example, the devices 203 include the antennaconnected to the Wi-Fi I/F 110. It is further assumed that the pollinginterval of the browser app 211 used before the correction is 190 [s]and the polling interval of the e-mail app 214 used before thecorrection is 205 [s].

FIGS. 7A and 7B are explanatory diagrams of the power consumption of themobile terminal apparatus 100 when the polling interval T is notcorrected. FIG. 7A depicts the power consumption varying over time, forthe browser app 211, the e-mail app 214, the OS 201, and the devices of203. FIG. 7B depicts power consumption.

It is assumed in FIGS. 7A, 7B, 8A, and 8B that the events 403 and 601,and the event 705 whose scheduled starting time is a time t10=12:47:10are executed as the events of the browser app 211. Similarly, an event703 whose scheduled starting time is the time t1=12:40:05, the event404, and an event 704 whose scheduled starting time is a timet9=12:46:55 are executed as the events of the e-mail app 214.

The power consumption of the app 210 is “the power consumption of theCPU 101 by the app 210×the average utilization rate of the CPU 101 bythe app 210×(the active time period of the CPU 101+a constant timeperiod)”. The “active time period of the CPU 101+the constant timeperiod” is set to be the processing time period of the app 210. Inaddition to the power consumption of the CPU 101, the power consumptionof the memory 106 and the bus 111 are present. However, in thecalculation depicted in FIGS. 7A, 7B, 8A, and 8B, the calculation isexecuted such that the power consumption of the memory 106 and the bus111 is included in the power consumption of the CPU 101.

For example, in the example of FIGS. 7A and 7B, the power consumption ofthe CPU 101 by the browser app 211 is set to be 2 [mW]; the averageutilization rate of the CPU 101 by the browser app 211 is set to be0.50; the processing time period of the browser app 211 is set to be theactive time period of the CPU 101 that is 7 [s]+the constant time periodthat is 3 [s]=10 [s]. When the CPU 101 causes the active time periodthereof to come to an end, the CPU 101 transitions to the low electricalpower mode after a constant time period elapses.

In the example of FIGS. 7A and 7B, processing intervals of the browserapp 211 are from the time t3=12:40:50 to the time t4=12:41:00, from thetime t7=12:44:00 to the time t8=12:44:10, and from the time t10 to thetime t11=12:47:20. Using the values above, the electrical powerconsumption of the browser app 211 is 2 [mW]×0.50×(7 [s]+3 [s])×3[times]=30 [mW·s].

Similarly, consequent to the e-mail app 214, the electrical powerconsumption of the CPU 101 is assumed to be 2 [mW] and the averageutilization rate of the CPU 101 is assumed to be 0.40. Further, theprocessing time period of the e-mail app 214 is assumed to be the activetime period 12 [s] of the CPU 101+a constant time period 3 [s]=15 [s].The processing intervals of the e-mail app 214 in the example depictedin FIGS. 7A and 7B are the time t1 to the time t2=12:40:20, the timet5=12:43:30 to the time t6=12:43:45, and the time t9=12:46:55 to thetime t10. Using the values above, the electrical power consumption ofthe e-mail app 214 is 2 [mW]×0.40×(12 [s]+3 [s])×3 [times]=36 [mW·s].

The power consumption of the OS 201 is “the power consumption of the CPU101 by the OS 201×the average utilization rate of the CPU 101 by the OS201×the active time period of the OS 201”. When CPU 101 causes theactive time period of the OS 201 to come to an end, the CPU 101transitions to the low electrical power mode after the constant timeperiod elapses.

The active time period of the OS 201 is the processing time period ofthe app 210. Consequent to the OS 201, the electrical power consumptionof the CPU 101 is assumed to be 2 [mW] and the average utilization ratethe CPU 101 is assumed to be 0.5. Further, the active time period of theOS 201 is the overlapping time of the processing time period of thebrowser app 211 and the processing time period of the e-mail app 214.The time intervals when the OS 201 is active are from the time t1 to thetime t2, from the time t3 to the time t4, from the time t5 to the timet6, from the time t7 to the time t8, and from the time t9 to the timet11. Using the values above, the electrical power consumption of the OS201 is 2 [mW]×0.50×(7 [s]+3 [s]+12 [s]+3 [s])×3 [times]=75[mW·s].

The power consumption of the devices 203 is “the power consumption ofthe devices 203×the active time period of the devices 203”. In additionto the power consumption of the devices 203, the power consumption ofthe I/Fs connected to the devices 203 is also present. However, in thecalculation in FIGS. 7A, 7B, 8A, and 8B, the power consumption of theI/Fs are included in the power consumption of the devices 203, for thecalculation. The devices 203 transition to the low power consumptionmode when the active time period of the devices 203 comes to an end.

In the example depicted in FIGS. 7A and 7B, the power consumption of thedevices 203 is assumed to be 0.5 [mW]. Further, the active time periodof the devices 203 is the overlapping time of the processing time periodof the browser app 211 and the processing time period of the e-mail app214, and is equivalent to the active time period of the OS 201. Usingthe values above, the electrical power consumption of the devices 203 is0.5 [mW]×(10 [s]+15 [s])×3 [times]=37.5 [mW·s]. Thus, the powerconsumption of the mobile terminal apparatus 100 is 3 0 [mW·s]+36[mW·s]+75 [mW·s]+37.5 [mW·s]=178.5 [mW·s].

FIGS. 8A and 8B are explanatory diagrams of the power consumption of themobile terminal apparatus 100 when the polling terminal T is corrected.FIG. 8A depicts the respective power consumptions of the browser app211, the e-mail app 214, the OS 201, and the devices 203 over time. FIG.8B depicts the power consumption. The browser app 211 executescorrection of the scheduled starting time of the events 601 and 705.Among the times t1 to t11 used in FIG. 7A and the times t1 to t14 usedin FIG. 8A, the times t1 to t5 represent the same times in both diagramsand the times t6 and thereafter represent times that differ between thediagrams.

The calculation contents for the correction of the event 601 is same asthat depicted in FIG. 6 and therefore, will not again be described. As aresult of the correction, the scheduled starting time of the event 601is corrected from the time t9 that is t9=12:44:00 to the time t6 that ist6=12:43:40. Details of the calculation for the correction of the event705 are as follows. The current time at which the correction is executedis the time t8 that is t8=12:43:50 at which the execution of the event601 comes to an end. The scheduled starting time of the event 705 is thetime t10 that is t10=12:46:50, acquired by adding the pollinginterval=190 [s] to the time t6. The event that temporally is to beexecuted next is the event 704 and the scheduled starting time thereofis the time t12 that is t12=12:46:55.

The event management API 222 substitutes values into the function f1 andobtains Eq. (6) below. The substituted values are Polling_Apl1=the timet10, CurrentTime=the time t8, NextPollingTime_e1=the time t12,constant=1, PowerApiLevel_Apl1=3, and BatteryLife=0.5.

$\begin{matrix}\begin{matrix}{T = {( {{{the}\mspace{14mu}{time}\mspace{14mu} t\; 10} - {{the}\mspace{14mu}{time}\mspace{14mu} t\; 8}} ) + {( {{{the}\mspace{14mu}{time}\mspace{14mu} t\; 12} - {{the}\mspace{14mu}{time}\mspace{14mu} t\; 10}} )*1\text{/}( {3*0.5} )}}} \\{= {180 + {5\text{/}(1.5)}}} \\{\approx {183\mspace{14mu}\lbrack s\rbrack}}\end{matrix} & (6)\end{matrix}$The event management API 222 acquires Eq. (7) below by substituting Eq.(6) into Eq. (1) and thereby, calculates the scheduled starting timeNextPollingTime_e2 to be obtained by the correction of the event 705.NextPollingTime_(—) e2=the time t8+183=12:46:53(the time t11)  (7)

As a result of the calculation, the processing time period of the event705 is corrected to be the time t11 to the time t13=12:47:03. The powerconsumption for the processing by the browser app 211 does not vary asthat in FIGS. 7A and 7B and is 30 [mW·s]. For the power consumption ofthe e-mail app 214 obtained by the correction of the polling interval,the processing intervals of the e-mail app 214 are the time t1 to thetime t2, the time t5 to the time t7=12:43:45, and the time t12 to thetime t14=12:47:10 from FIGS. 8A and 8B. As described, the processingtime period of the e-mail app 214 in FIGS. 7A and 7B and that in FIGS.8A and 8B are the same and therefore, the power consumption thereof inFIGS. 7A and 7B and that in FIGS. 8A and 8B are also equal, i.e., arerespectively 36 [mW·s].

The power consumption of the OS 201 obtained by the correction of thepolling interval is calculated. The time intervals for the OS 201 to beactive are the time t1 to the time t2, the time t3 to the time t4, thetime t5 to the time t8, and the time t11 to the time t14. The total ofthe active time periods is 15 [s]+10 [s]+20 [s]+17 [s]=62 [s]. Thisvalue is shorter than the execution time period of the OS 201 depictedin FIGS. 7A and 7B=(7 [s]+3 [s]+12 [s]+3 [s])×3 [times]=75 [s]. However,in the time periods that are the time t6 to the time 7 and the time t12to the time t13, the two executing apps are present and, the amount ofwork of the OS 201 is increased by an amount corresponding to the workof the two apps. Therefore, the total amount of work does not vary andthe power consumption of the OS 201 is same as that in FIGS. 7A and 7Band is 75 [mW·s].

The power consumption of the devices 203 obtained by the correction ofthe polling interval is calculated. The active time period of thedevices 203 is equal to that of the OS 201. The power consumption of thedevices 203 is 0.5 [mW]×(15 [s]+10 [s]+20 [s]+17 [s])=31 [mW·s]. Fromthe above, the power consumption of the mobile terminal apparatus 100 is30 [mW·s]+36 [mW·s]+75 [mW·s]+31 [mW·s]=172 [mW·s]. The mobile terminalapparatus 100 can reduce power consumption by consolidating theexecution time periods of the devices 203 into one execution timeperiod.

The polling interval of the browser app 211 consequently is reduced fromthe polling interval=190 [s] that is the polling interval used beforethe correction to 170 [s], based on the correction for the event 601that is a first correction. Consequent to the first correction, thescheduled starting time of the event 705, which is the next event of thesame process, becomes a time that is before the event 704, which was tobe executed next. Thus, consequent to the correction for the event 705that is a second correction, the polling interval is increased from 190[s] to 193 [s]. The average of the polling intervals acquired by thefirst and the second correction is (170+193)/2=181.5 [s] andconsequently approaches to the polling interval used before thecorrection=190 [s].

As described, the mobile terminal apparatus 100 corrects the scheduledstarting time of the event that temporally is to be executed next andthereby, the long-term average of the polling intervals of the event tobe corrected can be converged to the polling interval used before thecorrection. The convergence of the average to the polling interval usedbefore the correction enables the mobile terminal apparatus 100 toeasily observe the restriction information. Especially, if therestriction information indicates a count per given time period, themobile terminal apparatus 100 can easily observe the restrictionindicated in the restriction information, by the convergence of thelong-term average to the polling interval used before the correction.

The execution time period of the devices 203 becomes 20 [s] consequentto the first correction and becomes 17 [s] consequent to the secondcorrection. Therefore, the amount by which the power consumption isreduced is larger based on the second correction than that based on thefirst correction. As described, the stepwise execution of the correctioncauses the interval of the scheduled starting times to be shortened andtherefore, the amount by which the power consumption is reduced can beincreased. Even if the execution time period of the devices 203 cannotbe shortened and the power consumption thereof is not reduced by thefirst correction because a restriction indicated in the restrictioninformation is observed, the difference between the scheduled startingtimes is smaller due to the first correction than the difference betweenthe scheduled starting times without any correction. Therefore, themobile terminal apparatus 100 executes the stepwise correction and canfinally cause the execution time period of the devices 203 to beshortened and the power consumption thereof to be reduced.

FIGS. 9 and 10 depict a polling interval correction process of executingthe correction of the polling interval executed by the OS 201. It isassumed that the apps started up in FIGS. 9 and 10 are the apps 1 and 2included in the apps 210. During the operation of the mobile terminalapparatus 100, one app may be started up or three or more apps may bestarted up.

FIG. 9 is a flowchart (Part I) of the polling interval correctionprocess. The OS 201 starts operation after the booting of the mobileterminal apparatus 100 comes to an end, etc. (step S901) and, after thestart of the operation, executes a start-up request for the appsaccording to an instruction from the user, etc. (step S902). The app 1receives the start-up request and starts operation (step S903). The app2 receives the start-up request and also starts operation (step S904).After the start of the operations, the apps 1 and 2 each start an eventinvoking process that performs the polling correction.

The OS 201 acquires “BatteryLife” from the power control library 232(step S905). The app 1 after starting operation notifies the OS 201 ofPowerApiLevel_Apl1 and Polling_Apl1 (step S906). Similarly, the app 2notifies the OS 201 of PowerApiLevel_Apl2 and Polling_Apl2 (step S907).The OS 201 acquires, via the event management API 222, an event e1 thattemporally is to be executed next (step S908).

It is assumed thereafter that, among the notifications issued at stepsS906 and S907, the OS 201 receives the notification issued at step S906first. After acquiring the event _e1, the OS 201 substitutesNextPollingTime_e1, PowerApiLevel_Apl1, Polling_Apl1, BatteryLife, andCurrentTime into the function f, and calculates the polling intervalT_Apl1 (step S909).

At step S909, if the notification issued at step S907 from the app 2 isreceived first, the OS 201 substitutes the values of the app 2 andcalculates the polling interval T_Apl2. The calculation of the pollinginterval T_Apl2 of the app 2 related to the notification that is givenat step S907 and received after the notification issued in the processat step S906, is executed when the operation at step S909 is againexecuted. To acquire CurrentTime, the OS 201 invokes the timer API 223and acquires CurrentTime before executing the operation at step S909.

After the calculation, the OS 201 notifies the app of the calculatedpolling interval T (step S910). Concerning the app to which notificationis given, the OS 201 notifies the app 1 when the polling interval Tcalculated at step S909 is T_Apl1, and notifies the app 2 when thepolling interval T is T_Apl2.

FIG. 10 is a flowchart (Part II) of the polling interval correctionprocess. It is assumed that the OS 201 notifies the app 1 at step S910.The app 1 acquires the polling interval T_Apl1 (step S1001) and by anoperation specific to the app 1, generates an execution request for anevent _eN (step S1002). The event _eN is registered into the event list202 by the event management API 222 invoked by the app 1. After theregistration, the app 1 stands by until the event _eN is to be executed(step S1003). At step S1003, if an executable process other than theevent _eN is present, the app 1 may execute the other process, withoutstanding by, in addition to the execution of the event _eN.

The OS 201 determines whether the event management API 222 has detectedregistration of a new event _eN (step S1007). If the OS 201 determinesthat the event management API 222 has detected registration (step S1007:YES), the OS 201 determines the event _eN as the event to be correctedand corrects the scheduled starting time NextPollignTime_eN of the event_eN to CurrentTime+T_Apl1 (step S1008).

The app 1 after acquiring T_Apl1 at step at S1001 may update T_Apl1,based on the restriction information retained by the app 1. For example,it is assumed that, although T_Apl1 is reported to be 160 [s], therestriction information of the app 1 stipulates that the pollinginterval be within a range of 170 to 190 [s]. In this case, assumingthat T_Apl1′ is T_Apl1′=170 [s], the app 1 notifies the OS 201 ofT_Apl1′ at step S1002. At step S1008, the OS 201 corrects the scheduledstarting time NextPollingTime_eN of the event _eN to CurrentTime+T_Apl1.

After the process at step S1008 comes to an end or if the OS 201determines that the event management API 222 has not detected theregistration of a new event (step S1007: NO), the OS 201 determines,using the timer API 223, whether the scheduled starting time of an eventamong the events registered in the event list 202 has arrived (stepS1009). If the OS 201 determines that the scheduled starting time of anevent has arrived (step S1009: YES), the OS 201 notifies the appcorresponding to the event, that the scheduled starting time of theevent has arrived (step S1010). After the notification is made to theapp or if the OS 201 determines that the scheduled starting time of anevent has not arrived (step S1009: NO), the OS 201 advances to theoperation at step S905.

The app 1, after receiving the notification that the scheduled startingtime has arrived, executes the event _eN (step S1011). When thenotification is received, the app 1 may not be standing and may beexecuting another process. In such a case, for example, the otherprocess may have a priority level that is higher than that of theprocess of the event _eN. In this case, the app 1 may execute theprocess of event _eN after the other process is completed.

After the execution of the event _eN, the app 1 determines whether theloop to invoke an event comes to an end (step S1012). If the app 1determines that the loop to invoke an event continues (step S1012: NO),the app 1 advances to the operation at step S906. If the app 1determines that the loop to invoke an event comes to an end (step S1012:YES), the app 1 ends the event invoking process that performs thepolling correction.

At step S906, “PowerApiLevel_Apl1” is a value specific to the app 1 anddoes not change during the execution of the app 1. Therefore, in theoperation at step S906 executed for the second time or later, the app 1that advances to the process at step S906 may transmit to the OS 201,only Polling_Apl1 that is the scheduled starting time of the next eventand that is used before the correction.

When the OS 201 notifies the app 2 at step S910, the app 2 executes theprocess instead of the app 1. For example, the app 2 acquires thepolling interval T_Apl2 (step S1004) and causes the execution request tobe generated for the event _eM by an operation specific to the app 2(step S1005). The event _eM is registered into the event list 202 by theevent management API 222 invoked by the app 2. After this registration,the app 2 stands by until the event _eM is to be executed (step S1006).As with the app 1, at step S1006, if another process is present inaddition to the execution of the event _eM, the app 2 may execute theprocess without standing by.

After receiving notification that the scheduled starting time hasarrived, the app 2 executes the event _eM (step S1013), and determineswhether the loop to invoke an event comes to an end (step S1014). If theapp 2 determines that the loop to invoke an event continues (step S1014:NO), the app 2 advances to the operation at step S907. If the app 2determines that the loop to invoke an event comes to an end (step S1014:YES), the app 2 causes the event invoking process that performs thepolling correction to come to an end.

As described, according to the information processing apparatus, theelectrical power control method, and the electrical power controlprogram, the correction is executed such that among the two events to beexecuted at the current time or thereafter, the interval between thescheduled starting times of the two events is shortened to an extentthat a restriction indicated in the restriction information of the eventto be corrected is observed. Thus, the execution time periods of thedevice executed associated with the event process are consolidated,enabling the information processing apparatus to reduce powerconsumption.

When two preceding events are executed whose processing contents aresame as those of the two events and the processing time periods of thetwo preceding events do not overlap each other, the informationprocessing apparatus may detect the scheduled starting times of the twoevents to be executed at the current time or thereafter. For example,the processing time periods of the two preceding events may not overlapwith each other as a result of limitation of the correctable valuesimposed by the restriction information. Further, the app that is toexecute the corrected event may be currently executing another processwhose priority level is higher than that of the event process.Therefore, the app does not always execute the event at the correctedscheduled starting time and the processing time periods of the twoevents may not overlap with each other.

However, comparing the difference between the scheduled starting timesof the two preceding events used before the correction, with thedifference between the starting times at which the two preceding eventsare executed, the latter difference is shorter than the formerdifference. Therefore, the difference in the scheduled starting times ofthe two events executed next after the preceding events is smaller thanthe difference between the scheduled starting times that are of the twopreceding events and that are used before the correction. Therefore, theprocessing time periods tend to overlap with each other. As described,even when the processing time periods of the two events do not overlapwith each other, the information processing apparatus executes thestepwise correction and ultimately causes the processing time periods tooverlap with each other; and thus, can reduce power consumption.

When the correction of the scheduled starting times of the two precedingevents does not result in the processing time periods of the twopreceding events overlapping with each other, the information processingapparatus may detect the scheduled starting times of the two events tobe executed at the current time or thereafter. The correctable valuesmay be restricted by the restriction information and as a result, itbecomes clear at the time of the execution of the correction that theprocessing time periods of the two preceding events do not overlap witheach other. However, the difference between the two events to beexecuted next after the preceding events is smaller than the differencebetween the scheduled starting times that are of the two precedingevents and that are used before the correction. Therefore, theprocessing time periods tend to overlap with each other. As described,even when the correction does not result in the processing time periodsof the two events overlapping with each other, the informationprocessing apparatus executes the stepwise correction; and thereby,ultimately causes the processing time periods to overlap with eachother; and thus, can reduce power consumption.

The information processing apparatus may determine among the two events,the event detected after the other as the event to be corrected. Theevent detected first, specifically, an event registered in the eventlist 202 may be already corrected. If the event detected first isdetermined as the event to be corrected and the correction of thescheduled starting time thereof is executed, a correction that hasalready been performed is in vain. Therefore, by determining the eventthat is detected later as the event to be corrected, the informationprocessing apparatus can prevent a correction that has already beenperformed from being in vain.

The information processing apparatus may detect the event thattemporally is to be executed next and another event, among the group ofevents to be executed at the current time or thereafter, as the twoevents and may determine the other event as the event to be corrected.Thereby, the information processing apparatus can cause the long-termaverage of the polling intervals of the event to be corrected toconverge to the polling interval used before the correction. Theconvergence of the long-term average of the polling intervals to thepolling interval used before the correction enables the informationprocessing apparatus to easily observe a restriction indicated in therestriction information.

The information processing apparatus may correct the scheduled startingtime of the event to be corrected, based on the calculated differenceand the power consumption of either one of the two events. For example,the information processing apparatus executes the correction such thatthe interval between the scheduled starting times of the two events isshorter as the power consumption of event is higher. Thereby, theinformation processing apparatus can reduce the power consumption of theapp that strongly affects the power consumption of the informationprocessing apparatus. When the power consumption of an event is low, thepolling interval used before the correction is prioritized andtherefore, the information processing apparatus can easily observe arestriction indicated in the restriction information.

The information processing apparatus may correct the scheduled startingtime of the event to be corrected, based on the calculated differenceand the remaining power level of the information processing apparatus.For example, the information processing apparatus executes thecorrection such that the interval between the scheduled starting timesof the two events becomes shorter as the amount of the remaining powerlevel is lower. Thereby, the information processing apparatus cansuppress the consumption of the power when the amount of the remainingpower is low. When the amount of the remaining power is high, thepolling interval used before the correction is prioritized andtherefore, the information processing apparatus can easily observe arestriction indicated in the restriction information.

The electrical power control method described in the present embodimentmay be implemented by executing a prepared program on a computer such asa personal computer and a workstation. The program is stored on acomputer-readable recording medium such as a hard disk, a flexible disk,a CD-ROM, an MO, and a DVD, read out from the computer-readable medium,and executed by the computer. The program may be distributed through anetwork such as the Internet.

According to an aspect, reduced power consumption is achieved.

All examples and conditional language provided herein are intended forpedagogical purposes of aiding the reader in understanding the inventionand the concepts contributed by the inventor to further the art, and arenot to be construed as limitations to such specifically recited examplesand conditions, nor does the organization of such examples in thespecification relate to a showing of the superiority and inferiority ofthe invention. Although one or more embodiments of the present inventionhave been described in detail, it should be understood that the variouschanges, substitutions, and alterations could be made hereto withoutdeparting from the spirit and scope of the invention.

What is claimed is:
 1. An information processing apparatus comprising aprocessor programmed to: detect scheduled starting times of two eventsusing a device external with the information processing apparatus and tobe executed at a current time or thereafter, the two events beingregistered in an event list; calculate a difference of the scheduledstarting times of the two events, when the scheduled starting times ofthe two events have been detected; determine as an event to becorrected, the event detected last among the two events; and correct,based on the calculated difference and to the extent that therestriction indicated in the restriction information of the event to becorrected is observed, the scheduled starting time of the event to becorrected such that the interval between the scheduled starting times ofthe two events is shortened; wherein the processor, from among a groupof events to be executed at the current time or thereafter, detects asthe two events, an event that temporally is to be executed next amongthe group of events and another event other than the event thattemporally is to be executed next.
 2. The information processingapparatus according to claim 1, wherein the processor detects thescheduled starting times of the two events, when an execution of twopreceding events corresponding to the executed two events results innon-overlap of processing time periods of the two preceding events. 3.The information processing apparatus according to claim 1, wherein theprocessor detects the scheduled starting times of the two events to beexecuted at the current time or thereafter, when correction of scheduledstarting times of two preceding events results in non-overlap ofprocessing time periods of the two preceding events.
 4. The informationprocessing apparatus according to claim 1, wherein the processorcorrects the scheduled starting time of the event to be corrected, basedon power consumption of any one among the two events.
 5. The informationprocessing apparatus according to claim 1, wherein the processorcorrects the scheduled starting time of the event to be corrected, basedon remaining power level of the information processing apparatus.
 6. Anelectrical power control method executed by a computer, the electricalpower control method comprising: detecting scheduled starting times oftwo events using a device external with the information processingapparatus and to be executed at a current time or thereafter, the twoevents being registered in an event list; calculating a difference ofthe scheduled starting times of the two events, when the scheduledstarting times of the two events have been detected; determining as anevent to be corrected, the event detected last among the two events; andcorrecting, based on the calculated difference and to the extent thatthe restriction indicated in the restriction information of the event tobe corrected is observed, the scheduled starting time of the event to becorrected such that the interval between the scheduled starting times ofthe two events is shortened; wherein the detecting, from among a groupof events to be executed at the current time or thereafter, detects asthe two events, an event that temporally is to be executed next amongthe group of events and another event other than the event thattemporally is to be executed next.
 7. A non-transitory computer-readablerecording medium storing an electrical power control program that causesa computer to execute a process, the process comprising: detectingscheduled starting times of two events using a device external with theinformation processing apparatus and to be executed at a current time orthereafter, the two events being registered in an event list;calculating a difference of the scheduled starting times of the twoevents, when the scheduled starting times of the two events have beendetected; determining as an event to be corrected, the event detectedlast among the two events; and correcting, based on the calculateddifference and to the extent that the restriction indicated in therestriction information of the event to be corrected is observed, thescheduled starting time of the event to be corrected such that theinterval between the scheduled starting times of the two events isshortened; wherein the detecting, from among a group of events to beexecuted at the current time or thereafter, detects as the two events,an event that temporally is to be executed next among the group ofevents and another event other than the event that temporally is to beexecuted next.